import service from "@/utils/request";
import type { AxiosRequestConfig, AxiosResponse } from "axios";
import type { IRes } from "@/api/api";
// interface IRes {
//   success: boolean;
//   code: number;
//   message: string;
// }
// interface IResLogin extends IRes {
//   data: {
//     token: string;
//   };
// }
// interface IResUserInfo extends IRes {
//   data: {
//     routes: string[];
//     button: string[];
//     roles: string[];
//     name: string;
//     avatar: string;
//   };
// }

export interface ILogin {
  token: string;
}
// IRes<ILogin>{
//   success: boolean;
//   code: number;
//   message: string;
//   data: { token: string};
// }
export interface IUserInfo {
  routes: string[];
  buttons: string[];
  roles: string[];
  name: string;
  avatar: string;
}
/**
 * 登录
 * @param username 用户名
 * @param password 密码
 */
export function login(username: string, password: string) {
  // 现在我们通过 响应拦截器修改了 res 的返回值结构，所以，我们就需要通过 第二个泛型参数来设置方法最终返回的结果类型
  return service.post<any, ILogin>("/acl/index/login", {
    username,
    password,
  });
}

export function requestUserInfo() {
  return service.get<any, IUserInfo>("/acl/index/info");
}

//退出
export function requestLogOut() {
  return service.post<any, any>("/acl/index/logout");
}
